# -*- coding: utf-8 -*-
"""
@文件    :   students_scores.py
@时间    :   2022/05/25 22:47:56
@作者    :   YTNetMan
@版本    :   1.0
@邮箱    :   ytnetman@163.com
@版权    :   (C)Copyright 2022-2025
@分类    :   办公自动化
@功能    :   多个工作簿的联接操作
            sheet_name 读文件时要带上工作簿参数
            merge和join方法都可以，推荐join
"""

import matplotlib.pyplot as plt
import pandas as pd

#sheet_name 工作簿名称
# students = pd.read_excel('./doc/Student_score.xlsx', sheet_name='Students')
# scores = pd.read_excel('./doc/Student_score.xlsx', sheet_name='Scores')
# 带默认索引的表联结 students 是 left  scores 是 right
# how='left' 不管匹配到数据没，保留左边的数据
# on='ID' 以ID字段来联结
# fillna(0) 如果匹配到的是空数据，用0来填充
# table = students.merge(scores, how='left', on='ID').fillna(0)
# table.Score = table.Score.astype(int)
# print(table)

# 去掉默认索引
# students = pd.read_excel('./doc/Student_score.xlsx', sheet_name='Students', index_col='ID')
# scores = pd.read_excel('./doc/Student_score.xlsx', sheet_name='Scores', index_col='ID')
# left_on  right_on  指定左右两边的联结字段
# table = students.merge(scores, how='left', left_on=students.index, right_on=scores.index).fillna(0)
# table.Score = table.Score.astype(int)
# print(table)

students = pd.read_excel('./doc/Student_score.xlsx', sheet_name='Students', index_col='ID')
scores = pd.read_excel('./doc/Student_score.xlsx', sheet_name='Scores', index_col='ID')
#推荐使用join方法，和数据库的写法一致，自动联结一致的字段，在这里省略ID
table = students.join(scores, how='left').fillna(0)
table.Score = table.Score.astype(int)
print(table)
